<?php
/* 
 * ********* CVS HEADER ********* 
 * 
 * $RCSfile: rubrique.php,v $ 
 * $Date: 2006/04/07 11:58:14 $ 
 * $Revision: 1.5 $ 
 * 
 * ********* CVS HEADER ********* 
 */
require_once(get_path_module("contenu.article"));
function parse_rubrique($id_rubrique,$id_template){
	// on recupere la profondeur d'affichage
	$profondeur = -1;
	$texte='';
	$query="SELECT html_rubrique_tpl.tpl,html_rubrique.id_repertoire,html_rubrique.profondeur FROM html_rubrique,html_rubrique_tpl";
	$query.=" WHERE html_rubrique.id='$id_rubrique'";
	$query.=" AND html_rubrique.id_tpl=html_rubrique_tpl.id";
	$query.=" AND html_rubrique_tpl.id='$id_template'";
	$result=rportalrequete($query) or rportalerreur ("$query","?op=");
	if(rportalnbresult($result)!=0){
		$profondeur = rportalligne($result);
		$tpl = $profondeur['tpl'];
		$id_repertoire = $profondeur['id_repertoire'];
		$profondeur = $profondeur['profondeur'];
		$texte = _parse_rubrique($id_repertoire,$tpl,$profondeur,true);
	}
	return $texte;
}

function _parse_rubrique($id_repertoire,$tpl,$profondeur,$type,$affiche_titre){
	global $session;
	require_once('module/TPLN/TPLN.php');
	$TPLN = new TPLN;
	$TPLN->CreateVirtualTemplate($tpl);
	
	if($TPLN->BlocExists("article")){
		//On recupere les pages publiees contenues dans la rubrique
		$query ="SELECT html.* FROM html,hierarchie";
		$query.=" WHERE html.id_repertoire='$id_repertoire'";
		$query.=" AND html.droit=hierarchie.id_groupe";
		$query.=" AND hierarchie.id_groupe_dessus='".$session['id_groupe']."'";
		$query.=" AND html.publier='1'";
		$query.=" AND html.type!='$type'";
		$query.=" ORDER BY html.modification DESC";
		$result=rportalrequete($query) or rportalerreur ("$query","?op=");
		if(rportalnbresult($result)==0){
				$TPLN->EraseBloc("article");			
		}else{
			while($html = rportalligne($result)){
				if(true == $TPLN->ItemExists("code","article")){
					$TPLN->Parse("article.code",$html['code']);	
				}
				if(true == $TPLN->ItemExists("Atitre","article")){
					$TPLN->Parse("article.Atitre",traite_article($html['titre']));	
				}
				if(true == $TPLN->ItemExists("publication","article")){
					$TPLN->Parse("article.publication",$html['publication']);	
				}
				if(true == $TPLN->ItemExists("creation","article")){
					$TPLN->Parse("article.creation",$html['creation']);	
				}
				if(true == $TPLN->ItemExists("auteur","article")){
					$TPLN->Parse("article.auteur",$html['login_auteur']);	
				}
				if(true == $TPLN->ItemExists("resume","article")){
					$TPLN->Parse("article.resume",traite_article($html['description']));	
				}
				if(true == $TPLN->ItemExists("compteur","article")){
					$TPLN->Parse("article.compteur",traite_article($html['compteur']));	
				}
				if(true == $TPLN->ItemExists("fichier","article")){
					$TPLN->Parse("article.fichier",traite_article($html['nom']));	
				}
				$TPLN->Loop("article");
			}	
		}
	}
	if(true == $TPLN->BlocExists("rubrique")){
		$query ="SELECT html.id_repertoire,html.* FROM html_repertoire,html,hierarchie";
		$query.=" WHERE html_repertoire.id=html.id_repertoire";
		$query.=" AND html_repertoire.id_parent='$id_repertoire'";
		$query.=" AND html.publier='1'";
		$query.=" AND html.type='$type'";
		$query.=" AND html.droit=hierarchie.id_groupe";
		$query.=" AND hierarchie.id_groupe_dessus='".$session['id_groupe']."'";
		$result=rportalrequete($query) or rportalerreur ("$query","?op=");
		if(rportalnbresult($result)==0){
				$TPLN->EraseBloc("rubrique");			
		}else{
			while($rub = rportalligne($result)){
				$t=0;
				if(true == $TPLN->ItemExists("code","rubrique")){
					$t=1;
					$TPLN->Parse("rubrique.code",$rub['code']);	
				}
				if(true == $TPLN->ItemExists("Rtitre","rubrique")){
					$t=1;
					$TPLN->Parse("rubrique.Rtitre",traite_article($rub['titre']));	
				}
				if(true == $TPLN->ItemExists("resume","rubrique")){
					$t=1;
					$TPLN->Parse("rubrique.resume",traite_article($rub['description']));	
				}
				if(true == $TPLN->ItemExists("fichier","rubrique")){
					$TPLN->Parse("rubrique.fichier",traite_article($rub['nom']));	
				}
				if(true == $TPLN->ItemExists("listing","rubrique")){
					$t=1;
					$listing='';
					if($profondeur>0){
						$p = $profondeur - 1;	
						$listing = _parse_rubrique($rub['id_repertoire'],$tpl,$p,$type,false);
					}
					$TPLN->Parse("rubrique.listing",$listing);	
				}
				if($t==1){
					$TPLN->Loop("rubrique");	
				}
			}
		}
	}
	return $TPLN->Output();
}
?>